package com.chinairi.mall.dao;

import com.chinairi.mall.model.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chinairi.mall.service.modelobject.CiccLabelMO;
import com.chinairi.mall.service.modelobject.NewUserMO;
import com.chinairi.mall.service.modelobject.UserInfoToRedisMO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 员工基本信息(如果客户已有人力资源的用户信息表，则使用客户提供的表，不用该表) Mapper 接口
 * </p>
 *
 * @author 董志涵
 * @since 2020-08-17
 */
public interface SysUserMapper extends BaseMapper<SysUser> {
    SysUser getSysUserByPhoneNumber(String phoneNumber);

    /**
     * 根据传回的手机号加用户uuid确认此手机号是否被注册。
     *
     * @param id
     * @param phone
     * @return
     */
    int checkPhone(@Param("id") String id, @Param("phone") String phone);

    /**
     * 检查某个字段在表中是否存在
     *
     * @param table   表名
     * @param clo     字段名
     * @param value   待检验值
     * @param primary 主键字段名
     * @param key     主键值
     * @return int
     */
    int checkExist(@Param("table") String table, @Param("clo") String clo, @Param("value") String value, @Param("primary") String primary, @Param("key") String key);

    /**
     * 获取用户基本信息
     *
     * @param id
     * @return
     */
    SysUser getUserInfo(@Param("id") String id);

    /**
     * 用户放入redis查询
     *
     * @return
     */
    List<UserInfoToRedisMO> getUserInfoToRedis();

    /**
     * 获取子用户添加信息列表
     *
     * @param parentId
     * @return
     */
    List<NewUserMO> getNewUserInfo(@Param("parentId") String parentId);

    /**
     * 获取用户性别的编码表内容
     *
     * @return
     */
    List<CiccLabelMO> getUserSexLabel();

    /**
     * 获取用户状态的编码表内容
     *
     * @return
     */
    List<CiccLabelMO> getUserStatusLabel();

    /**
     * 账号类型编码表
     * @return
     */
    List<CiccLabelMO> getAccountTypeLabel();

    /**
     * 用户状态编码表
     * @return
     */
    List<CiccLabelMO> getSysStatusLabel();

}
